package com.sh.rbac.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.sh.rbac.domain.dto.file.FileQueryDTO;
import com.sh.rbac.domain.entity.File;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.web.multipart.MultipartFile;

/**
 * @author wb
 * @since 2024-10-01
 */
public interface FileService extends IService<File> {

    /**
     * 上传文件
     *
     * @param file 文件
     * @return 文件路径
     */
    String upload(MultipartFile file);


    /**
     * 下载文件
     *
     * @param filename 文件名称
     * @param response  响应
     */
    void download(String filename, HttpServletResponse response);


    /**
     * 分页查询文件列表
     *
     * @param current      当前页
     * @param limit        每页数量
     * @param fileQueryDTO 查询条件
     * @return 分页结果
     */
    Page<File> getPage(Long current, Long limit, FileQueryDTO fileQueryDTO);
}
